package com.chinasofti.generic;

import java.util.ArrayList;

public class Type01 {

    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        ArrayList<String> list2 = new ArrayList<>();
        ArrayList<Number> list3 = new ArrayList<>();
        ArrayList<Object> list4 = new ArrayList<>();

        method(list1);
        method(list2);
        method(list3);
        method(list4);

        getElement(list1);
        //getElement(list2);
        getElement(list3);
        //getElement(list4);

        //getElement2(list1);
        //getElement2(list2);
        getElement2(list3);
        getElement2(list4);
    }
    //？
    public static void method(ArrayList<?> list){}
    //上限 他表示类型是Number或者其子类
    public static void getElement(ArrayList<? extends Number> list){}
    //下限 他表示类型是Number或者其父类
    public static void getElement2(ArrayList<? super Number> list){}
}
